﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InnvoiceActual.Logica.GestorObject;
using InnvoiceActual.BaseDeDatos.innvoicedbDataSetTableAdapters;
using System.Data;
using System.Windows;

namespace InnvoiceActual.Logica.GestorDB
{
    public class AlicuotaDB
    {
        public decimal GetTasaAlicuota(int codigo)
        {
            alicuotaTableAdapter alicuotaDB = new alicuotaTableAdapter();

            decimal resultado = 21.00m;

            try
            {
                DataTable tablaAlicuota = alicuotaDB.GetDataByAlicuotaSegunCodigo((short)codigo);

                if (tablaAlicuota.Rows.Count > 0)
                {
                    foreach (DataRow item in tablaAlicuota.Rows)
                    {
                        resultado = Convert.ToDecimal(item["tasa"].ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " Error -- Class ArticuloDB -- Methods GetDescripcionAlicuota(codigo)", "Cuidado", MessageBoxButton.OK);
            }

            return resultado;
        }


        /** Devuelve las alicuotas segun el estado
         * -1 Todas
         **/ 
        public List<Alicuota> GetAlicuotas(int activo)
        {
            List<Alicuota> resultados = new List<Alicuota>();
            resultados.Clear();

            alicuotaTableAdapter alicuotaTA = new alicuotaTableAdapter();

            try
            {

                DataTable tablaAlicuota = new DataTable();

                if(activo == -1)
                {
                    tablaAlicuota = alicuotaTA.GetDataByAlicuotas();
                }
                else
                {
                    tablaAlicuota = alicuotaTA.GetDataByAlicuotasSegunEstado(activo);
                }

                if(tablaAlicuota.Rows.Count > 0)
                {
                    foreach(DataRow item in tablaAlicuota.Rows)
                    {
                        Alicuota alicuota = new Alicuota();

                        alicuota.Codigo_Alicuota = Convert.ToInt16(item["codigo_alicuota"]);
                        alicuota.Descripcion = item["descripcion"].ToString();
                        alicuota.Tasa = Convert.ToDecimal(item["tasa"].ToString());
                        alicuota.Activo = Convert.ToByte(item["activo"]);

                        resultados.Add(alicuota);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " Error GetAlicuotas() - AlicuotaDB", "Cuidado", MessageBoxButton.OK);
            }

            return resultados;
            
        }
    }
}
